There are some special symbols in urls world, like ?, +, % and so on.
You can't use them explicitly but you can use dedicated functions to create a valid URL:
cloudobject = CloudDeploy @ APIFunction[{"p" -> "Expression"}, # &, "WL"]
SystemOpen @ URLBuild[ cloudobject, {"p" -> "2+3"}]
<|p->5|>
If you want to be able to write url by hand, then you have to know how to do this replacements. Or you can use FullForm
of the expression:
[...url...]?p=Plus[2,3]