В самом простом случае можно просто последнюю часть в необязательную группу
/^[a-zA-Zа-яёА-ЯЁ]+\s[a-zA-Zа-яёА-ЯЁ]+(\s[a-zA-Zа-яёА-ЯЁ]+)?$/
Но на практике такая валидация приведет к проблемам с двойными фамилиями и другими фио отличными от наших стандартных:
это восточные практики имен
или же европейские с двойными, а то и тройными именами
ну и наши тоже могут отличаться - фамилия не обязательна и у человека может быть только имя