Du würdest die Chancen auf eine Antwort sehr erhöhen, wenn Du dazu schreibst, was an Deinem Code nicht funktioniert, wie es sich äußert etc. 
Davon abgesehen bin ich nicht sicher, ob ich verstehe, was der Code tun soll. Du gehst also dreimal die Liste aller Comments durch und gibst dann für jeden Comment die Liste aller Comments aus!? Das ist es doch, was wp_list_comments tut, oder muss ich das Callback-Argument mal nachschlagen?! Anyway, das kommt mir unnötig kompliziert vor. Kann wp_list_comments das nicht von sich aus?
Hier die Doku der Funktion:
http://codex.wordpress.org/Template_Tags/wp_list_comments
Basierend darauf denke ich müsste Dein Code eher so aussehen:
<h3 id="comments">Kommentare</h3>
<ul class="commentlist">
<?php wp_list_comments('type=comment&callback=art_comment'); ?>
</ul>
<!--Pingbacks-->
<h3 id="comments">Pingbacks</h3>
<ul class="commentlist">
<?php wp_list_comments('type=pingback&callback=art_comment'); ?>
</ul>
<!--Trackbacks-->
<h3 id="comments">Trackbacks</h3>
<ul class="commentlist">
<?php wp_list_comments('type=trackback&callback=art_comment'); ?>
</ul>
Alles anzeigen
Macht es im übrigen Sinn, Trackbacks und Pingbacks zu trennen?! Falls nicht, kannst Du beide auf einen Schlag mit "pings" statt "trackback" und "pingback" erfassen. Es müsste ansonsten vielleicht noch was dazu für die Behandlung des Falles, dass die jeweilige Liste mal leer ist.