The by-election for the Penanti state seat in Penang will be held on May 31, with nominations to be filed on May 23.