Rough idea for q1:
I think we must invoke some property of the integers:
say say our polynomial is:
(b_0+b_1x.... x^q))
Now we know that 
so let's assume WLOG that 
we know that for n>2, the x^1 term must have coefficent of 0, and this coefficent is gotten by 
and
.
Hence we have:



so in our first polynomial, our first two terms must be multiples of 3, perhaps this argument can be continued to show that all the terms are multiples of 3. But i am not sure I haven't tried.
expanding on this idea, I have found that the proof requires testing a few cases individually so it gets messy, each case is alright to deal with, just keeping track that you have taken everything into account is annoying :/.
Ok so you can prove that the polynomials must have degree greater than 1, since otherwise we would get a linear term and we know this is impossible since
,f(\pm1)\neq 0)
Ok so first case assume

, in other words the first polynomial(with constant

) has lesser or equal degree.
now recall our proof that

and

are multiples of

, we will know prove by strong induction that all the

are multiples of

.
the coefficient of the x^m term in the product (where m<p<n-1) is:

however by induction,

is a multiple of

for all

, thus the equation above tells us that

is a multiple of

, hence a_m is a multiple of 3 completing the induction. This can be used for m=p to show that

is a multiple of

, a contradiction thus this proves the question for this case.
For the other case, p>q, it is more difficult to show that all the

are multiples of

and requires a slightly more complicated variation of the trick we used above.