Devi modificare molto lo script, specialmente se i nomi dei campi delle altre tabelle sono diversi.

Ad ogni modo puoi usare uno scheletro di questo tipo
codice:
$tabelle[0] = "tabella_0";
$tabelle[1] = "tabella_1";
$tabelle[2] = "tabella_2";

$campi[0] = {"titolo","nome"};
$campi[1] = {"titolo","nome",cognome};
$campi[2] = {"descrizione","email","username"};
Cosi nella posizione K del primo array hail il nome della tabella, nella posizione K del secondo hai l'elenco dei campi della tabella k-esima

Poi fai un doppio ciclo
codice:
foreach ($tabelle as $idx=>$t)
{
    $query = "select * from $t where "; 
    
    foreach($campi[$idx] as $c)
    {
        $query .= "$c LIKE '%$chiave%' OR ";
    }

    $query .= '0';

    
}
Insomma una cosa del genere, l'ho buttato giu al volo ma l'idea è quella