Substitua
WHERE cláusula com HAVING , assim:SELECT o.ID , count(p.CAT)
FROM Orders o
INNER JOIN Products p ON o.P_ID = p.P_ID
GROUP BY o.ID
HAVING count(p.CAT) > 3;
HAVING é semelhante a WHERE , ou seja, ambos são usados para filtrar os registros resultantes, mas HAVING é usado para filtrar dados agregados (quando GROUP BY é usado).