If you merely use single right-tick uneval quotes (As Carl's suggested) then subsequent full evaluation of the resulting plot structure can lead to inadvertant and undesirable evaluation of assigned names in the textplots.
That can include the scenario where you pass the textplot(s) to plots:-display as a subsequent programmatic merging with plots computed only later.
That can make merely using uneval quotes a somewhat problematic approach. Too few layers of quoting and your code might accidentally evaluate the quoted expressions. Too many layers and some quotes can undesirably appear in the rendering. Too tricky, and fragile if mixed with later revisions to the overall code.
Passing the resulting assigned textplot structure around as eval(P,1) is possible, but that too can get complicated and onerous -- depending on later code changes.
Instead, your could use Typesetting:-Typeset to get the textplots, with much better resistence to such unwanted subsequent evaluation. Basically, it's just going to be more robustly useful in such a case that you don't want any part of the "text" to be subsequently, accidentally evaluated. You only have to focus on its construction, and not on how you use/pass it later.
In the examples below, the green text survives as intended, while the red text goes wrong due to inadvertant evaluation.
nb. If your expression is first assigned to some name, eg. foo:=expression , then you might need either,
etc, since Typesetting:-Typeset has special evaluation rules (to prevent automatic evaluation) on its first parameter.