Question: How can I sort terms of the polynomial after expanding?

This is my file
 

restart;
F := proc(ee, LL) Typesetting:-mrow(InertForm:-Typeset(InertForm:-Display(eval(eval(InertForm:-MakeInert(factor(ee)), [`%*` = `*`]) = InertForm:-MakeInert(map(sort, algsubs(a*x = InertForm:-MakeInert(a*x), ee), order = plex(b))), `=`~([a, b], LL)), inert = false)), Typesetting:-mo("="), InertForm:-Typeset(eval(ee, `=`~([a, b], LL)))); end proc;
p := a^3*x^3 + 3*a^2*b*x^2*y + 3*a*b^2*x*y^2 + b^3*y^3;
L := [[2, 3], [1, 2], [1/3, -sqrt(2)]];
ans := F~(p, L);
print~(ans);

I get 

I want to the order of terms of the polynomial, e.g, (2 x + 3y)^3 like this

(2 x + 3 y)^3 = (2 x)^3 + 3 (2 x)^2 (3 y) + 3 (2 x) (3 y)^2 + (3 y )^ 3 = 8*x^3 + 36*x^2*y + 54*x*y^2 + 27*y^3. 

How can I get that

Please Wait...