What Solution 1 is saying is that you cannot do SELECT * because you can only SELECT the columns that are in your GROUP BY statement and the ones that you SUM(field) OR COUNT(field) etc.
So, you can do something like this using a derived table:
SELECT p.*
FROM (
select productid
From [Production].[Product]
group by[ProductID]
having avg([DaysToManufacture])>3
) x
INNER JOIN product p ON x.productid = p.productid