I can't conveniently copy the logical symbols you use, so I write
AND = ∧ (conjunction)
OR = ∨ (disjunction)
NOT = ¬
Tautologically,
p = (p AND q) OR (p AND NOT q)
and we can distribute the OR to get the equivalent statement
(p OR (p AND NOT q)) AND (q OR (p AND NOT q))
and again to get
((p OR p) AND (p OR NOT q)) AND ((p OR q) AND (q OR NOT q))
Now, q OR NOT q is always true, and p OR p is simply p, so we have
p = p AND (p OR q) AND (p OR NOT q)
This shows that p OR NOT q is already included in p, so our initial statement is simply
p AND (NOT p OR NOT q)
Distributing the conjunction, we get
(p AND NOT p) OR (p AND NOT q)
p AND NOT p is tautologically false, but we're considering a disjunction, so the truth value of p AND NOT q is the only value that's relevant. So, the initial statement collapses to
p AND NOT q