I recommend first that you use either "three-and-a-half-year-old" or "3½-year-old," and that you not mix spelled-out numbers and numerical numbers as in "3-and-a-half-year-old" and "three-and-½-year-old."
Another common (but in my view unjustifiable) form of punctuation in unedited manuscripts is, for example, "three-and-a-half-year old," where the author omits the final hyphen as though old were a stand-alone noun in the context of the given age.
The other obvious option is to leave the words open: "three and a half year old." This approach avoids what you consider the hyphen plague of "three-and-a-half-year-old," but it also de-emphasizes the unitary aspect of the phrase, which the heavily punctuated form makes clear.
You might also think of the form "three-and-a-half-year-old" as offering a recognizable-at-a-glance contrast to the similar phrase "three-and-a-half years old," where years is indeed a freestanding noun.
In any event, if five hyphens in a stretch of six words strikes you as too many, you have two practical options that don't do violence to the words' interconnectedness:
Use "3½-year-old" instead of "three-and-a-half-year-old." (You are within your rights to do this unless your publisher/style guide insists that you spell out all numbers below a certain minimum. In this regard, an anonymous editor has added this helpful note to my answer: "Note for those using APA formatting: Numbers one through ten are always spelled out." I'm not familiar with APA style, but such variations in preference are not at all unusual.)
Recast the sentence so that you can describe the person or thing as being "three-and-a-half years old" rather than "three-and-a-half-year-old."