Not getting enough power out of 2N3904 transistor to motors

dc42:
Driving the lower transistors like that without resistors between the base and the Arduino is a good way to damage both the transistor and the Arduino.

If you have any PNP transistors, you could use the attached circuit for each side of the H-bridge. Like your existing circuit, if you accidentally set both output pins HIGH at the same time, you will short out the 9V supply and probably blow the transistors.

Actually you can drive an H-bridge with two pins rather than four if cross-connected thus:

The only issue is that very short spikes of current will flow as it is switching (choosing the right values for
R5 and R6 controls the peak currents though).

Don't forget those free-wheel diodes - here I used a bridge rectifier to get 4 diodes in one package, a neat trick.