According to Zabbix function documentation, function regexp() accepts a second parameter - the number of seconds or values to analyze. Unfortunately, it will return 1 if at least one of the values matches, which is not what you need - you need all values to match.
Therefore, if your regular expression is simple enough, consider using count() function with "eq" or "like" operators:
{host:item.count(#3,ERROR,eq)} = 3
{host:item.count(#3,ERROR,like)} = 3
There is also a feature request to be able to use regular expressions in count() function and it is tracked at ZBXNEXT-1250.