As @Chris said, a normal project has sub projects inside. You only have one backlog though.
Think in a backlog with all your projects. First problem: are you assigning priorities to tasks or projects? I do prefer a backlog per project. At least to have clear the priorities that the product owner has.
Having different product owners, and due to the fact that those product owners are not going to agree on how much time they should give to each project. "Someone" will have to absorve the decision on how to manage interproject priorities. Note: developers shouldn't do it.
Here it comes our project"S" manager that will balance the resources product owners need and the time members of the team can give. Product owner A paid for one month of work, but product owner B is always updating his project (and paying you well too). There some how you'll balance your team for A to have his one month (developer time), and do not stop B from filling your pockets.
In the case of internal software (one company, a thousand projects). The different product owners should agree on the time given to them. They do not live isolated, but in the same boat as you (project"S" manager). They will make your life easier being able to postpone some tasks, but at the same time you should never forget their needs.
Well, I'm still trying to figure out the best way to do this. But this is what we're pushing right now. I hope it helps.