My understanding is the BSD projects originally forked over personality/political issues with the defunct 386BSD project, and only later did they begin to focus on certain feature sets.
NetBSD forked from 386BSD, which is the PC port of the Net/2 4.3BSD source code release.
FreeBSD is, in some vague sense, the continuation of the 386BSD project. It's a fork, but a fork in which the parent died out.
OpenBSD is Theo de Raadt's fork of NetBSD. Theo was one of the NetBSD founders and had a falling out with the NetBSD core team.
The origins of all three projects are basically accidents of fate, but FreeBSD has taken up a role as the "optimized for x86/x64 servers" BSD, OpenBSD (obviously) as the "secure" BSD, and NetBSD is the "portable" BSD. In practice, NetBSD sees some use in embedded/appliance scenarios, although Linux has pretty much taken over the world there.