First determine the stall current of your motors - if its under 500mA, the P2N2222A transistors will be good enough, otherwise you need a better solution. (To determine the stall current without burning or breaking anything, measure the DC resistance of the motor and divide the motor supply voltage by the measured resistance)
Small signal bipolar transistors like the 2n2222A are usually unsuitable for this sort of application, because when starting a stalled motor, there is a high probability that the current will exceed the maximum 600mA Ic and damage the transistor. Also they tend to drop a lot of voltage when on, (up to 1V Vce_sat, depending on load current) which makes driving very low voltage motors predictably more difficult. You can get higher current transistors, typically in TO220 packages, intended to be bolted to a heatsink, (though that's not needed if you keep the power dissipation under 1W), but they tend to be significantly lower gain and an Arduino wont be able to provide enough base current. The usual answer to that is to use a Darlington pair, but the Vce_sat is a lot higher, compounding your problems controlling low voltage motors.
Normally, I would say, 'Use a MOSFET driver', which would take the 5V logic level signals from your Arduino, and boost then up to the 12V levels needed to reliably drive a typical MOSFET, but then you'd need three separate supply rails, 12V for the MOSFET drivers, 5V for the ATmega328P on the Arduino (but its on-board regulator can run from 12V if you don't draw too much current from the 5V rail) and about 2V at a high current for the motors. You could get there using switching regulators (A.K.A 'Buck Converter') and nominally 3A buck converters are pretty cheap on EBAY, so you could use one for each group of two or three motors, but its a lot of complexity, and although through-hole MOSFET drivers in DIP packages are available, they pull fairly high transient currents when switching so you have to be careful about board layout and decoupling, so that approach may be a little too adventurous for a novice.
Instead I suggest going 'old skool' and using the P2N2222A transistors as emitter followers, with their base driven directly by the Arduino output to boost its output current enough to drive just about any TO220 package NPN power transistors with Ic>=5A. You'd run the power transistor with its emitter grounded and stick a suitable base resistor (e.g 33R for about 100mA of base drive) between the P2N2222A emitter and the base of the power transistor. That would let the power transistor Vce_sat be as low as half a volt, maybe even 0.3V if your motors don't draw a lot of current. The fly in the ointment is the load on the 5V rail powering all the P2N222A collectors - its going to be more than is safe for the Aduino on-board regulator, so either you will need a 5V supply capable of a few amps to power both the Arduino and all the emitter followers, or you'll need to feed the emitter followers off the unregulated supply to the Arduino, with a carefully calculated dropper resistor to each to keep its power dissipation within its permitted limits at max current, while never letting the collector voltage drop below 5V.
If you are feeling adventurous, go for the MOSFET drivers, otherwise go for the NPN power transistors. In either case, I strongly recommend asking here for advice on parts and showing us the proposed schematic before buying or building anything.