This formula allows stable prices. Bitcoin is unstable.
This formula doesn't allow anything since Bitcoin is not backed by any economy(it's only backed by the mining cost). Bitcoins' supply doesn't have any impact on the prices of products which we buy every day.
That's why the value of 1 BTC is in the most basic form - linear function of the total supply. Prices of products are fairly constant, Bitcoin's value is the only thing that is changing.
"p = average value of the transactions, in a period of time, say a year"
P - can't be a value of the coin or transactions. It would have to be something else but there is no other thing you could use, you are linking value of Bitcoin with itself.
Since the value of Bitcoin is changing(for many reasons), the lower it will be the higher will be volume of transactions(you need more BTC to pay for sth).
BTC price=>down
p(average value of transactions)=>up
x(total supply)=>up
BTC price => down(because of the extra supply)
And we end up in an inflationary spiral. Basically every scenario you can think of ends up in a spiral unless the value of transactions is constant as it is in the original Cambridge equation. And it's pretty obvious that not all of the transactions are made for buying goods.
So we are back to our linear function: supply=>up, price of 1BTC=>down. The only solution for this I could think of is the network working as a decentralized central bank, taking informations about the price from all of the big exchanges. With hardcoded fixed exchange rates to the other currencies. And your wallet would be recalculating your amount of coins depending on the average exchange price. If you have let's say 1BTC and price went up from 200$ to 400$, amount in the wallet changes to 0.5BTC, so no matter what - you have the same amount of fiat money.