1. He has three hours soccer practice every day.

2. He has three hours' soccer practice every day.

3. He has three-hour soccer practice every day.

(Which one is grammatical?)

2 answers

Number two is correct.
1 would be correct if you add "of" after "hours."

2 is correct.

3 would be correct if you put "a" before "three."