Both of them, and the J&J, are close to 100% effective against hospitalization and death.
Moderna seems to have a slightly lower incidence of minor side effects (aches, fevers, etc).
Pfizer's full protection is 7 days after the second shot and you get the 2nd shot three weeks after the first (so 28 days between first shot and full protection). Moderna's full protection is 14 days after the 2nd shot and you get the 2nd shot four weeks after the first (so 42 days between 1st shot and max protection).
BOTH of them provide very significant protection against infection with a single shot! (though the 2nd shot adds significant value)
The advice seems to be pretty consistent that the first shot you can get is the best shot.