By using integers instead of floats, you lose precision — weights/activations can only take on coarse, discrete values. With just 2 neurons, that severely limits the space of functions the network can represent. The 3rd neuron gives the network more degrees of freedom, so it can better approximate the target function despite the coarse resolution — not by 'stepping in' when another one fails, but by giving the network more combinatorial capacity overall.