“tax_query” parameter is ignored when “p” parameter is set in WP_Query

p is a special argument in WP_Query in that it short-circuits most of the query parsing logic to request a single post.

In your case, I’d suggest using the post__in argument when you need to use tax_query at the same time.