Override digital out with pushbutton
You could switch this around and make the output of the Arduino open-drain, tied to +5 through a 10K resistor (R4).  Get rid of the three transistors, and drive the gates of the  MOSFETs directly from the output pin.  (By the way, I'm not sure why you have three transistors in parallel; it seems you could of run the output of one transistor to all thee MOSFETs.)

Now, setting the output pin to ground will be the same as turning on the transistors in your earlier circuit (collectors connected to ground).  Setting the pin high (tri-stated for open-drain outputs) will leave the outputs at +5 due to R4.  Meanwhile, if the switch is now connected to ground, and tied directly to the outputs (no R5), pushing the switch will also drive the output low without interfering with the output pin of the Arduino whether it is tro-stated or at at ground.



If you want to use your existing circuit, making  as few changes as possible, you should be able to isolate the switch and the output of Arduino using just a 1N4148 diode and adding a resistor to ground.  (The resistor in series with the switch is removed.)