Every resistive element in the current loop between your motor and the voltage source will develop a voltage dependent upon the current flowing. The circuit will contain several such resistances, and will resemble this its simplest form:
simulate this circuit – Schematic created using CircuitLab
Even the voltage source, the battery, has some internal resistance, shown here as 0.025Ω. You say that the MOSFETs have no resistance, but that's not the case. Here I represented MOSFET resistance at 0.2Ω. Then all the wiring around the loop will have some total resistance too, which I've arbitrarily set to 0.125Ω.
Obviously these values will vary, but they illustrate the problem; each element will develop some voltage that subtracts from the the total 6V, lowering the voltage that actually appears across the load, the motor.
By Kirchhoff's Voltage Law, the sum of voltages across each element must equal the voltage source, regardless of the current flowing:
$$ V_{MOTOR} + V_{WIRE} + V_{MOSFET} + V_{SOURCE} = V_{BAT1} $$
$$ 5.3V + 0.25V + 0.4V + 0.05V = 6.0V $$
Given that these resistances are unavoidable, there's absolutely nothing you can do about this without raising the source's voltage, as you suggested. However, this approach has a problem; the motor's own effective resistance will vary depending on its mechanical load, and the voltage across it will also vary as that load varies.
You must expect some voltage drop, therefore, but you can minimise it by using thicker wires (and better connectors), a battery with lower internal resistance, and a better MOSFET, with lower \$R_{DS(ON)}\$.
If you do increase battery voltage to achieve the full 6V across the motor under no mechanical load, motor voltage will still fall as load increases, so you still haven't fixed the problem. To ensure 6V across the motor at all times, you require both greater battery voltage and also active voltage regulation, using some kind of closed loop (feedback) control.