Building my own brushless 3-phase motor driver to use with an Arduino
There is an effect you are probably unaware of, which is known as the "crowbar" effect.

MOSFETs do not switch from OFF to ON in one immediate change, and the do not switch from ON to OFF in a single immediate change.  There is a period where they are changing from ON to OFF or OFF to ON, during which they are conducting.

The gate terminal is basically a small capacaitor.  It takes time for it to charge fully, and it holds its charge briefly as it discharges.

During this time your Vcc and GND will effectively be short circuited - just like a crowbar dropped across a battery's terminals.

$$poof$$

To protect against this you need to engineer a "dead zone" between turning off one MOSFET and turning on the next.  This is commonly done using a MOSFET H-Bridge Driver chip (there are many), or by individually controlling the two MOSFETs in a channel.

Given that you are driving this from an Arduino, unless you are doing other things as well, you have plenty of IO pins.  By driving each individual MOSFET from an IO pin (resulting in 6 IO pins being used, not 3), you can be sure that you never turn on one MOSFET until a reasonable time after its partner MOSFET has been turned off.