Prodigy will start each task in a separate process that provides the model in the loop (if required), web application and REST API. Each task has its own app, to allow running more than one task independently – that’s why they need to be served on separate ports. There’s not really an easy way to serve several independent web applications on the same port.
There’s also not really a good case for why you’d want to switch between interfaces, as this would introduce all sorts of problems and open questions: You’d need to make sure that the answers are stored with the correct task, make sure to re-fetch unanswered questions that were sent out etc. (The demo app is just a demo, so it’ll discard all questions and answers when you switch.)