I liked a response that got deleted. If all you want is the cosmetic look, and do not care if the expression is actually altered, here is something I use to make expressions "inert". The idea is to replace numeric functions with their string names.
inertify[expr_Hold] := Module[{xx}, xx[Release[ expr /. f_Symbol /; MemberQ[Attributes[f], NumericFunction] :> ToString[f]]] /. xx -> Hold]
Here is the example.
e1 := 3 x + 2 (1 + y) z In[227]:= e2 = inertify[Hold[Evaluate[e1]]] Out[227]= Hold["Plus"["Times"[3, x], "Times"[2, "Plus"[1, y], z]]] In[228]:= TreeForm[First@e2 /. x -> 3]
