This is just a continuation of the last time the same question was asked, and answered.
There are other roots, but they lie out very far, on the order of 1e6 or 3e6. In fact, there are probably infinitely many roots as a guess, based on the plots I did.
A numerical rootfinder (like vpasolve, or fzero, for that matter) requires an initial guess at the solution. No guess, no answer. Since there are infinitely many solutions to this problem, if you give no guess at all, then a tool like vpasolve is at least nice enough to guess zero to start at. (I think that is the default.) This means it will find the solution at P==0, since that just happens to be a solution.
Other solvers, thus if you convert the expression to a function using matlabFunction, then you can use fzero or fsolve? These solvers REQUIRE a starting value. They will fail if none is provided. Sorry, but that is how things work.
Anyway, if you want to find other solutions than that at P==0, you need to tell the code where to start looking. The example I give is if you set a blind man down on the surface of the earth, and told him to find the lowest point in elevation. If you start him out in the vicinity of the Dead Sea, do you seriously expect him to wander around until he finds the bottom of the Marianas trench? In fact, he will find the bottom of the Dead Sea. Or, how about if you start him out in the Himalayas?
A solver NEEDS an intelligent start point. If you don't give it that, expect arbitrary garbage. What do you expect when you have a function with infinitely many solutions? Which one should it give you, since it will give you only one?
It is often a good idea to plot your function to gain some intelligence. But that is EXACTLY what I did the last time I answered your question.