Вот замена preg, которую вы можете использовать для удаления атрибута, отличного от обязательного.
$html = preg_replace("/(<img\\s)[^>]*(src=\\S+)[^>]*(\\/?>)/i", "$1$2$3", $html);
$html = preg_replace("/(<figure\\s)[^>]*[^>]*(\\/?>)/i", "$1$2$3", $html);
$html = preg_replace("/(<figcaption\\s)[^>]*[^>]*(\\/?>)/i", "$1$2$3", $html);
это даст вам вывод
<figure ><img src="https://sampleonly.com/wp-content/uploads/2020/01/my-picture-300x169.jpg"><figcaption >This is my picture text.</figcaption><figure>