I also dont really understand why the recommendation fees from cellphone wallets are so high and it makes us quite frustrated thinking about the costs.
Because the algorithms they use for estimating a fee are poor. When fees have been low for several days, then if you select "high priority" or "fast" or whatever your wallet calls its highest fee, then it looks back over the last few days, sees fees of 1-2 sats/vbyte, and correctly gives you a fee of 3 sats/vbyte, which remains cheap but still gets you confirmed quickly. When fees have been as high as 150 sats/vbyte over the last few days, then your wallet sees that and recommends a much higher fee than is necessary, even when blocks are currently filled with 1-2 sats/vbyte transactions. Other wallets see your transaction with a high fee, and so also go higher to out compete your transaction. The cycle bounces back and forth between wallets and websites, and it takes a long time for them to cool down and reduce their recommended fees again.
If we look at
https://jochen-hoenicke.de/queue/#1,2h it becomes obvious to see. A block is emptying the mempool down to 2 sats/vbyte transactions. At that point, a fee of 3 sats/vbyte will put you within 0.07 MB of the tip of the mempool. Within 5 minutes, to stay within 0.07 MB of the tip the fee would now be 180 sats/vbyte. That is completely unnecessary, and if all those people actually took 5 seconds to look at the mempool instead of just accepting the fee their wallet told them to use, they could have saved ~170 sats/vbyte in fees.
Is there a way to prevent it ?
Unfortunately, there's not much you can do as an individual. As long as large portions of the community just use whatever fee their wallet tells them, such rapid increases in the feerate as I've described above will be commonplace. I would recommend looking at the mempool yourself using the above link when making a transaction though. If you are happy to wait 2-3 blocks instead of 1, you could reduce your fee from 180 sats/vbyte to 3 sats/vbyte.