The example.com/widget-category/page-3 URL cannot have as href in its hreflang="en-CA" the example.ca/widget-category/page-1 because also this other URL - example.com/widget-category/page-1 - has that Canadian URL as href (moreover, that is the correct href for its hreflang="en-CA").
Hence, if you follow your first idea, you will be having a URL (the canadian first page of the paginated list) that will have two different hreflang annotations ( <rel="alternate" href="example.com/widget-category/page-1" hreflang="en-US">and <rel="alternate" href="example.com/widget-category/page-3" hreflang="en-US">, which is totally uncorrect, because you are telling Google to use two URLs for English speaking users in the USA, instead of one.</rel="alternate"></rel="alternate">
Sincerely I wouldn't worry that much. If you are using the rel="prev"/"next", Google will consider the third page of the US listing as a all with the first two pages, hence it should not start showing it in the index.

