I don’t think they expect you to come up with an exact solution to this problem. Different approaches and their advantages could be discuused, depending upon the requirements.
1.) First you could have three stacks with fixed capacities, of say N/3 each. Where N is the size of the original array. The problem here would be that a lot of space may go unused. Although insertions and deletions would be relatively easy. Also unnecessary overflows, even when you have space available.
2.) A second approach could be having a variable boundary between stacks, but this could mean performance reductions. You could maintain two stacks at the endpoints of the array, like you do for two stacks. The third one could be implemented in the middle, modifying the push and the pop operation, so that whenever two boundaries collide, you just shift your middle stack towards free space.
3.) You could have one stack of constant space, and other two sharing a variable boundary, and other variations. Though the design should depend on the usage.