If by "the forks are completed" you mean the the processes that the forks created have terminated, then that is probably true at that point since we pretty much waited for their completion when we read from their respective pipes. And in either case we already have all the data from them that we want.

However it is considered good manners to clean up after yourself by "wait"ing on the processes. Furthermore, although we are not availing ourselves of the opportunity, we could also at that point check the return status of the processes and report any failures.

See Zombie process - Wikipedia